package com.me.test.controller;

import com.me.test.pojo.merchant;
import com.me.test.service.merchantService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;

@RestController
@RequestMapping("/api/merchants")
public class merchantController {

    @Autowired
    private merchantService merchantService;

    /**
     * 查询所有商户信息
     * @return 商户列表
     */
    @GetMapping
    public List<merchant> getAllMerchants() {
        return merchantService.getAllMerchants();
    }

    /**
     * 根据ID查询商户信息
     * @param id 商户ID
     * @return 商户信息
     */
    @GetMapping("/{id}")
    public merchant getMerchantById(@PathVariable Integer id) {
        return merchantService.getMerchantById(id);
    }

    /**
     * 根据手机号查询商户信息
     * @param mobile 手机号
     * @return 商户信息
     */
    @GetMapping("/mobile/{mobile}")
    public merchant getMerchantByMobile(@PathVariable String mobile) {
        return merchantService.getMerchantByMobile(mobile);
    }

    /**
     * 根据状态查询商户列表
     * @param status 状态
     * @return 商户列表
     */
    @GetMapping("/status/{status}")
    public List<merchant> getMerchantsByStatus(@PathVariable String status) {
        return merchantService.getMerchantsByStatus(status);
    }

    /**
     * 分页查询商户信息
     * @param page 页码（从1开始，默认为1）
     * @param size 每页大小（默认为10）
     * @return 商户列表
     */
    @GetMapping("/page")
    public List<merchant> getMerchantsWithPagination(
            @RequestParam(defaultValue = "1") int page,
            @RequestParam(defaultValue = "10") int size) {
        return merchantService.getMerchantsWithPagination(page, size);
    }

    /**
     * 添加商户信息
     * @param merchant 商户对象
     * @return 是否添加成功
     */
    @PostMapping
    public boolean addMerchant(@RequestBody merchant merchant) {
        return merchantService.addMerchant(merchant);
    }

    /**
     * 更新商户信息
     * @param merchant 商户对象
     * @return 是否更新成功
     */
    @PutMapping
    public boolean updateMerchant(@RequestBody merchant merchant) {
        return merchantService.updateMerchant(merchant);
    }

    /**
     * 删除商户信息
     * @param id 商户ID
     * @return 是否删除成功
     */
    @DeleteMapping("/{id}")
    public boolean deleteMerchant(@PathVariable Integer id) {
        return merchantService.deleteMerchantById(id);
    }
}
